home *** CD-ROM | disk | FTP | other *** search
- /* C version of quicksort benchmark */
-
- #include <stdio.h>
-
- int ilist[50] = {27,74,17,33,94,18,46,83,65, 2,
- 32,53,28,85,99,47,28,82, 6,11,
- 55,29,39,81,90,37,10, 0,66,51,
- 7,21,85,27,31,63,75, 4,95,99,
- 11,28,61,74,18,92,40,53,59, 8};
-
- int list[50];
-
- qsort(l, r)
- int l, r;
- {
- int v, t, i, j;
-
- if (l<r) {
- v=list[l]; i=l; j=r+1;
- do {
- do i++; while (list[i]<v);
- do j--; while (list[j]>v);
- t=list[j]; list[j]=list[i]; list[i]=t;
- } while (j>i);
- list[i]=list[j]; list[j]=list[l]; list[l]=t;
- qsort(l,j-1);
- qsort(j+1,r);
- }
- }
-
- main()
- {
- int i, j;
-
- for(j=0; j<10000; j++) {
- for(i=0;i<50;i++) list[i]=ilist[i];
- qsort(0,49);
- }
- for(i=0; i<50; i++) printf("%d ",list[i]);
- printf("\n");
- }
-